package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.service.ITAccountService;
import com.ruoyi.system.service.ITCurrencyService;
import com.ruoyi.system.service.ITReasonService;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.annotation.Resource;

/**
 * 收入、支出、转移的明细列对象 t_transaction_detail
 * 
 * @author ruoyi
 * @date 2022-03-17
 */
public class TTransactionDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 交易记录明细ID */
    private Long tid;

    /** 交易记录类型：收入、支出、转移 */
    @Excel(name = "交易记录类型")
    private String dtype;

    /** 交易日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date transactionDate;
    private Date[] transactionDate1;

    private Date TD1;

    private Date TD2;

    /** 凭证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "凭证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date proofDate;
    private Date[] proofDate1;

    private Date PD1;

    private Date PD2;

    /** 收支原因 */


    private Long ofReason;
    @Excel(name = "收支原因")
    private String reasonName;

    /** 交易金额 */
    @Excel(name = "交易金额")
    private BigDecimal money;

    private BigDecimal M1;

    private BigDecimal M2;

    /** 所属账户 */

    private Long ofAccount;
    @Excel(name = "所属账户")
    private String accountName;

    /** 预计付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date predictDate;
    private Date[] predictDate1;

    private Date pD1;
    private Date pD2;

    /** 对象 */
    @Excel(name = "对象")
    private String object;

    /** 附注说明 */
    @Excel(name = "附注说明")
    private String comment;

    /** 标签 */
    @Excel(name = "标签")
    private String tag;

    /** 营业税 */
    @Excel(name = "营业税")
    private BigDecimal tax;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoice;

    /** 附件 */
    private String attachment;

    /** 是否被删除：0没有，1被删除 */
    private Long deleted;

    /** 支出的所属设备 */
    private Long ofDevice;

    /** 转移的收入账户 */
    private Long inAccount;

    private Long ofCurrency;

    @Excel(name = "币种类型")
    private String ceName;

    private Long accountDetailId;

    private Long reasonDetailId;

    /** 主货币的金额 */
    private BigDecimal mainCurrencyMoney;

    /** 税率 */
    private Long taxRate;

    /** 被删除的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deletedDate;

    private Long serviceCharge;

    private String taxRateType;

    /** 收方币种 */
    private Long inCurrency;

    /** 转入账户手续费 */
    private Long inServiceCharge;

    /** 待入账inaccount */
    private Long iid;

    /** 是否完成 */
    private Long finished;

    private Long withDeposit;

    private Long depositId;


    private String cnName;

    private String enName;


    private Long ofCompany;

    @Excel(name = "所属公司")
    private String companyName;

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Long getOfCompany() {
        return ofCompany;
    }

    public void setOfCompany(Long ofCompany) {
        this.ofCompany = ofCompany;
    }


    public String getReasonName() {
        return reasonName;
    }

    public void setReasonName(String reasonName) {
        this.reasonName = reasonName;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getCnName() {
        return cnName;
    }

    public void setCnName(String cnName) {
        this.cnName = cnName;
    }

    public String getEnName() {
        return enName;
    }

    public void setEnName(String enName) {
        this.enName = enName;
    }

    public String getCeName() {
        return ceName;
    }

    public void setCeName(String ceName) {
        this.ceName = ceName;
    }

    public Date[] getTransactionDate1() {
        return transactionDate1;
    }

    public void setTransactionDate1(Date[] transactionDate1) {
        this.transactionDate1 = transactionDate1;
    }

    public Date[] getProofDate1() {
        return proofDate1;
    }

    public void setProofDate1(Date[] proofDate1) {
        this.proofDate1 = proofDate1;
    }

    public Date[] getPredictDate1() {
        return predictDate1;
    }

    public void setPredictDate1(Date[] predictDate1) {
        this.predictDate1 = predictDate1;
    }

    public Date getTD1() {
        return TD1;
    }

    public void setTD1(Date TD1) {
        this.TD1 = TD1;
    }

    public Date getTD2() {
        return TD2;
    }

    public void setTD2(Date TD2) {
        this.TD2 = TD2;
    }

    public Date getPD1() {
        return PD1;
    }

    public void setPD1(Date PD1) {
        this.PD1 = PD1;
    }

    public Date getPD2() {
        return PD2;
    }

    public void setPD2(Date PD2) {
        this.PD2 = PD2;
    }

    public BigDecimal getM1() {
        return M1;
    }

    public void setM1(BigDecimal m1) {
        M1 = m1;
    }

    public BigDecimal getM2() {
        return M2;
    }

    public void setM2(BigDecimal m2) {
        M2 = m2;
    }

    public Date getpD1() {
        return pD1;
    }

    public void setpD1(Date pD1) {
        this.pD1 = pD1;
    }

    public Date getpD2() {
        return pD2;
    }

    public void setpD2(Date pD2) {
        this.pD2 = pD2;
    }

    public void setTid(Long tid)
    {
        this.tid = tid;
    }

    public Long getTid() 
    {
        return tid;
    }
    public void setDtype(String dtype) 
    {
        this.dtype = dtype;
    }

    public String getDtype() 
    {
        return dtype;
    }
    public void setTransactionDate(Date transactionDate) 
    {
        this.transactionDate = transactionDate;
    }

    public Date getTransactionDate() 
    {
        return transactionDate;
    }
    public void setProofDate(Date proofDate) 
    {
        this.proofDate = proofDate;
    }

    public Date getProofDate() 
    {
        return proofDate;
    }
    public void setOfReason(Long ofReason) 
    {
        this.ofReason = ofReason;
    }

    public Long getOfReason() 
    {
        return ofReason;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setOfAccount(Long ofAccount) 
    {
        this.ofAccount = ofAccount;
    }

    public Long getOfAccount() 
    {
        return ofAccount;
    }
    public void setPredictDate(Date predictDate) 
    {
        this.predictDate = predictDate;
    }

    public Date getPredictDate() 
    {
        return predictDate;
    }
    public void setObject(String object) 
    {
        this.object = object;
    }

    public String getObject() 
    {
        return object;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }
    public void setTag(String tag) 
    {
        this.tag = tag;
    }

    public String getTag() 
    {
        return tag;
    }
    public void setTax(BigDecimal tax) 
    {
        this.tax = tax;
    }

    public BigDecimal getTax() 
    {
        return tax;
    }
    public void setInvoice(String invoice) 
    {
        this.invoice = invoice;
    }

    public String getInvoice() 
    {
        return invoice;
    }
    public void setAttachment(String attachment) 
    {
        this.attachment = attachment;
    }

    public String getAttachment() 
    {
        return attachment;
    }
    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }
    public void setOfDevice(Long ofDevice) 
    {
        this.ofDevice = ofDevice;
    }

    public Long getOfDevice() 
    {
        return ofDevice;
    }
    public void setInAccount(Long inAccount) 
    {
        this.inAccount = inAccount;
    }

    public Long getInAccount() 
    {
        return inAccount;
    }
    public void setOfCurrency(Long ofCurrency) 
    {
        this.ofCurrency = ofCurrency;
    }

    public Long getOfCurrency() 
    {
        return ofCurrency;
    }
    public void setAccountDetailId(Long accountDetailId) 
    {
        this.accountDetailId = accountDetailId;
    }

    public Long getAccountDetailId() 
    {
        return accountDetailId;
    }
    public void setReasonDetailId(Long reasonDetailId) 
    {
        this.reasonDetailId = reasonDetailId;
    }

    public Long getReasonDetailId() 
    {
        return reasonDetailId;
    }
    public void setMainCurrencyMoney(BigDecimal mainCurrencyMoney) 
    {
        this.mainCurrencyMoney = mainCurrencyMoney;
    }

    public BigDecimal getMainCurrencyMoney() 
    {
        return mainCurrencyMoney;
    }
    public void setTaxRate(Long taxRate) 
    {
        this.taxRate = taxRate;
    }

    public Long getTaxRate() 
    {
        return taxRate;
    }
    public void setDeletedDate(Date deletedDate) 
    {
        this.deletedDate = deletedDate;
    }

    public Date getDeletedDate() 
    {
        return deletedDate;
    }
    public void setServiceCharge(Long serviceCharge) 
    {
        this.serviceCharge = serviceCharge;
    }

    public Long getServiceCharge() 
    {
        return serviceCharge;
    }
    public void setTaxRateType(String taxRateType) 
    {
        this.taxRateType = taxRateType;
    }

    public String getTaxRateType() 
    {
        return taxRateType;
    }
    public void setInCurrency(Long inCurrency) 
    {
        this.inCurrency = inCurrency;
    }

    public Long getInCurrency() 
    {
        return inCurrency;
    }
    public void setInServiceCharge(Long inServiceCharge) 
    {
        this.inServiceCharge = inServiceCharge;
    }

    public Long getInServiceCharge() 
    {
        return inServiceCharge;
    }
    public void setIid(Long iid) 
    {
        this.iid = iid;
    }

    public Long getIid() 
    {
        return iid;
    }
    public void setFinished(Long finished) 
    {
        this.finished = finished;
    }

    public Long getFinished() 
    {
        return finished;
    }
    public void setWithDeposit(Long withDeposit) 
    {
        this.withDeposit = withDeposit;
    }

    public Long getWithDeposit() 
    {
        return withDeposit;
    }
    public void setDepositId(Long depositId) 
    {
        this.depositId = depositId;
    }

    public Long getDepositId() 
    {
        return depositId;
    }
    private String createtime;

    public String getCreatetime() {
        return createtime;
    }

    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("tid", getTid())
            .append("dtype", getDtype())
            .append("transactionDate", getTransactionDate())
            .append("proofDate", getProofDate())
            .append("ofReason", getOfReason())
            .append("money", getMoney())
            .append("ofAccount", getOfAccount())
            .append("predictDate", getPredictDate())
            .append("object", getObject())
            .append("comment", getComment())
            .append("tag", getTag())
            .append("tax", getTax())
            .append("invoice", getInvoice())
            .append("attachment", getAttachment())
            .append("deleted", getDeleted())
            .append("ofDevice", getOfDevice())
            .append("inAccount", getInAccount())
            .append("ofCurrency", getOfCurrency())
            .append("accountDetailId", getAccountDetailId())
            .append("reasonDetailId", getReasonDetailId())
            .append("mainCurrencyMoney", getMainCurrencyMoney())
            .append("taxRate", getTaxRate())
            .append("deletedDate", getDeletedDate())
            .append("serviceCharge", getServiceCharge())
            .append("taxRateType", getTaxRateType())
            .append("inCurrency", getInCurrency())
            .append("inServiceCharge", getInServiceCharge())
            .append("iid", getIid())
            .append("finished", getFinished())
            .append("withDeposit", getWithDeposit())
            .append("depositId", getDepositId())
            .toString();
    }

}
